Skip to content

整理自沉默王二(二哥)javabetter.cn《AI Agent 面试 296 题合集》:原文。全文搬运仅供个人学习,请勿外传。

面试官问你:“LLM 有记忆吗?”如果你回答“有啊,ChatGPT 就能记住我上一轮说的话”,面试官听完直摇头。

为什么?

因为那不是“记住”,是每次重新“读”了一遍之前发送的对话历史。

哈喽大家好,我是二哥呀。今天用 3 分钟,带你搞懂一个反直觉的事——LLM 是没有记忆的。

面试官问这道题,考三层:第一,LLM 无状态的本质你清不清楚;第二,参数记忆和上下文记忆的区别你能不能讲明白;第三,LLM 能“记住”之前的对话到底是怎么回事?

好,接下来给你满分回答,照着背就完事了。

先记住一句话:LLM 是无状态的。每一次请求都是独立的,前一次对话和后一次对话之间,模型不保留任何信息。

打个比方。LLM 就像一个读了几万本书的超级学霸,什么都知道,但有一个致命问题——每次和你说话之前,他都会失忆。

那他“知道”的东西从哪来呢?靠两样东西。

第一样,参数记忆(Parametric Memory)。

训练的时候,模型读了整个互联网的文本,几万亿个 token。这些知识被压缩、编码进了模型的权重参数里。训练结束,权重冻结,对话过程中不会再变。

类比一下:你从小学读到大学,十几年学的数学、物理、历史,已经存在脑子里了。当然你可能会忘,但绝不会忘记一加一等于二。

甚至不用翻书,你也知道勾股定理、知道水的沸点是 100 度。

哦,你忘记了?那当我没说。哈哈。

参数记忆就是模型在训练阶段学到的知识,考试的时候直接用,不用现查。

但参数记忆是死的。

模型训练截止到哪天,知识就停在哪天。你问它今天的新闻,不知道。你告诉它你叫什么,下次新开对话,也不记得。

第二样,上下文记忆(Contextual Memory)。

你跟 ChatGPT 聊天,感觉它“记得”你五分钟前说的话。真相是什么?

每次你发一条消息,系统把你们之前所有的聊天记录,一字不漏,全部打包塞给模型,让它从头读一遍。模型读完,生成回复。下一轮,再把新回复也塞进去,整段历史再来一遍。

它不是“记住”了你说的话。它是“又看了一遍”你说的话。

怎么验证?新开一个对话窗口,问它“我刚才说了什么”。它一脸问号,完全不知道。因为新窗口没有任何历史记录,它的“记忆”是零。

(当然了,现在的 Agent 都提供了长期记忆功能。)

所以,LLM 的记忆是工程层面制造的假象:不是模型自己记得,是系统每次帮它复习一遍。

面试官如果追问:“那 ChatGPT 的记忆功能又是怎么回事?”

告诉他——那是在模型之上加的工程方案。系统从对话里提取关键信息,比如“用户是程序员”“偏好用 Python”,存到外部数据库里。下次新开对话,把这些信息注入 system prompt,让模型“看到”。模型本身还是无状态的,只是被喂了更多上下文。记忆不在模型里,在模型外面的持久化文件里。

最后送大家一句口诀——权重装知识,上下文装对话;开了新窗口,一切从头来。

这道题你学废了吗?下一期拆上下文窗口——LLM 一次到底能“看到”多少内容?点赞关注,我是二哥,下期见!

本文整理自沉默王二(二哥)《AI Agent 面试 296 题合集》的公开内容,仅供个人学习使用

本站仅供个人学习使用,请勿外传